1. Field of the Invention
The invention relates generally to apparatus and methods for accessing and retrieving attribute name value pairs from properties data stores, such as properties files. More particularly, the invention relates to syntax enhancements and mechanisms for extending existing flat properties data stores to allow definition and access of properties on an object-by-object basis, allow implementation of inheritance of properties through some hierarchy of objects, and allow specification and overriding of properties of objects as they are used in different contexts.
2. Description of the Related Art
Java has a special built in mechanism for handling internationalization. One use of this mechanism encourages putting locale specific properties in “properties files” (e.g., properties files). This file contains attribute name value pairs. The normal syntax of the properties files are lines containing:                <attribute—name>=<value>        
The “=” separates the key from the value in the properties file. The existing Java properties file mechanism allows an application to request the value of a specific attribute from a specific properties file and Java returns the value of that attribute as specified in the named file. This is done by loading a specified properties file into an object of type ResourceBundle and then querying a specified attribute. The following example illustrates this. Suppose the file details.properties contains the following two lines:                nameString=name        prompt=please enter your full addressThe application, using the Java application programming interface (API), can query the value of the “prompt” property in the properties file named “details.properties” and get the result “please enter your full address”. This is how it is done:        ResourceBundle resourceBundle=ResourceBundle.getBundle(“details”);        String promptValue=ResourceBundle.getString(“prompt”).        
Several limitations of existing properties files and their respective syntaxes have become apparent to the assignee of the present invention. First, in the case of Java, the properties file and the resource bundle are both flat, non-object oriented collections of key-value (attribute-value) pairs. Consequently, attributes may not be specified on an object-by-object basis. Second, there is no way to perform inheritance. Third, no mechanism is provided to specify and/or override properties of objects as they are used in different contexts. As a result, programmers do not have the ability to define default values of objects that may be customized or overridden when the objects are running in a particular context. These and other limitations of the Java properties file syntax and usage model, make the specification of attributes both cumbersome and time consuming.